Systems and methods for sensitivities calculation relate to how the output of a calculation depends upon small changes to inputs to the calculation. These calculations, which make up part of complex computer software, can be of paramount importance to many business problems—including manufacturing, simulation, construction, and other math-heavy processes. Complicating this fact is that sensitivities calculation of heavy simulation-based measurements can be one of the most computationally intensive calculations a computer can perform.
For example, take a hypothetical process for calculating the yield of a chemical process involving three inputs and a single output. A manufacturer may desire to calculate up to tens of thousands of sensitivities to determine the effect that each level of change in the makeup of inputs has on the output.
Other processes take advantage of sensitivities calculation as well. For example, financial calculations may involve thousands or millions of inputs, such as interest rates, cash flow values, and the like. Financial institutions may wish to understand risk by determining how individual inputs to financial models affect the value of investments.
One approach to calculate sensitivities is via “bump-and-run” schemes, where one input (of many) is changed, an output is determined, the input is changed again slightly, a new output is determined, and so on, until all possible input variations have been used. The more sensitivities are required, the less efficient bump-and-run is, and calculating sensitivities for many thousand or millions of inputs may be difficult and/or impractical.
Another approach is known as forward-calculating “finite difference.” In this type of calculation, numerical derivatives are calculated at each stage of the calculation with numerous inputs. This, too, can require numerous calculations and high memory usage.
It is clear that advanced sensitivities calculation methods that can increase both accuracy and calculation speed are attractive. Moreover, it is not always efficient to use forward sensitivity tracing, for example, when the amount of input data exceeds the amount of output. Other types of sensitivity calculations exist, but as of yet no one has developed a system for dynamically selecting which method to use.
It is accordingly an object of the disclosed embodiments to solve these problems as well as others as will be apparent to those of skill in the art.